package com.weiquan.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * API日志记录实体
 */
@Data
@TableName("api_log_record")
public class ApiLogRecord {
    
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /**
     * 请求ID（用于追踪）
     */
    private String requestId;
    
    /**
     * 用户ID
     */
    private Long userId;
    
    /**
     * 用户名
     */
    private String username;
    
    /**
     * 操作描述
     */
    private String operation;
    
    /**
     * 操作类型
     */
    private String operationType;
    
    /**
     * 请求方法
     */
    private String method;
    
    /**
     * 请求URL
     */
    private String url;
    
    /**
     * 请求URI
     */
    private String uri;
    
    /**
     * 请求参数
     */
    @TableField(typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private Object requestParams;
    
    /**
     * 请求体
     */
    private String requestBody;
    
    /**
     * 响应结果
     */
    private String responseResult;
    
    /**
     * 异常信息
     */
    private String exceptionMsg;
    
    /**
     * 执行时间（毫秒）
     */
    private Long executionTime;
    
    /**
     * 请求IP
     */
    private String requestIp;
    
    /**
     * 用户代理
     */
    private String userAgent;
    
    /**
     * 请求状态：0-成功，1-失败
     */
    private Integer status;
    
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    
    /**
     * 是否删除：0-未删除，1-已删除
     */
    @TableLogic
    private Integer isDeleted;
}